(接上篇的虛擬類別選擇器部分)
:target
更改其段落樣式。當頁面URL中不含段落辨識碼,或是段落辨識碼在頁面中不存在對應元素,如https://en.wikipedia.org/wiki/Cascading_Style_Sheets#Select,:target
樣式無法生效。:lang(語言) {......}
,也可以使用前面的|=,寫作[lang|="語言"] {......}
,但|=只考慮元素本身的標記,:lang()
除了元素本身標記,也會考慮meta元素和其他協定資訊,因此是更好的選擇。:not()
是依元素缺少的條件選擇,寫法為:not(一個選擇器) {......}
,且選擇器不可寫有祖先後裔關係的選擇器(W3C的規範為類型選擇器、通用選擇器、屬性選擇器、ID選擇器或虛擬類別),所以正確寫法就像.item:not(.warm) {color: #000;}
,另外,不能用雙重否定:not(:not()),但允許有兩個同時否定條件
:not():not() {......}```。::first-letter
可指定所有非行內元素的第一個字母,或是以標點開頭的標點與第一個字母,做出字首放大的效果,::first-letter
只會作用在畫面上,不會影響原始碼或是DOM樹。::first-line
用來改變首行文字,當因為更改字型大小、字母間距、親代容器寬度使第一行的內容發生變化,::first-line
仍然只作用於改變後的第一行文字。::first-letter
與::first-line
的限制: ::first-letter
與::first-line
的使用對象,只能在標題或段落等區塊元素,超連結等行內元素是不能使用的。而在CSS屬性的使用上也有限制,兩者皆能用的屬性有font、background、text、border的所有屬性、color、opacity,另外::first-letter
還可以使用box-shadow屬性,而::first-line
則可以使用所有的border和padding相關屬性。::before {content:"插入內容"}
,目標元素後可用::after {content:"插入內容"}
,產生的內容是獨立個體,一定要加content才能使用,其他詳細用法與限制會在列表與生成內容中提到(第15章)。